package com.yc.javaee.servlet.d0617;

import com.google.gson.Gson;
import com.yc.javaee.bean.Result;

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;

// let url = "upload.s"  =>
// 用于接收文件的Servlet 必须添加
//  @MultipartConfig注解 ,用于配置限制文件大小和数量
@WebServlet(name = "UploadServlet", value = "/0617/upload.s")
@MultipartConfig
public class UploadServlet extends HttpServlet {

    @Override
    // 只有 post 方法支持文件上传
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        try {
            // 获取文件对象, part 获取文件信息, 保存文件
            Part part = request.getPart("headfile");
            // 上传后的路径
            String diskpath = "D:\\_文件柜\\112\\0617\\upload\\";
            // 获取提交的文件名
            String submittedFileName = part.getSubmittedFileName();
            diskpath += submittedFileName;
            System.out.println(part.getSize());// 文件大小
            // 保存文件到指定路径
            part.write(diskpath);
            //response.setContentType("text/html;charset=utf-8");
            //response.getWriter().append("文件上传成功!");
            // 上传成功之后, 将文件访问路径返回给页面
            // 页面收到之后, 显示当前上传的图片
            response.setContentType("applicationi/json;charset=utf-8");
            Result res = new Result(1, "文件上传成功","upload/" + submittedFileName);
            Gson gson = new Gson();
            String json = gson.toJson(res);
            response.getWriter().append(json);
        } catch (Exception e) {
            e.printStackTrace();
            response.getWriter().append("文件上传失败, 原因:" + e.getMessage());
        }


    }
}
